package com.ruoyi.web.controller.test;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.ruoyi.common.annotation.Anonymous;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

import java.util.HashMap;
import java.util.Map;

/**
 * 匿名访问测试接口
 * 
 * @author ruoyi
 */
@Api(tags = "匿名访问测试接口")
@RestController
@RequestMapping("/api/test/anonymous")
@Anonymous // 类级别的匿名访问注解，该控制器下所有接口都允许匿名访问
public class AnonymousTestController extends BaseController {
    
    /**
     * 测试匿名访问
     */
    @ApiOperation("测试匿名访问")
    @GetMapping("/hello")
    public AjaxResult hello() {
        Map<String, Object> data = new HashMap<>();
        data.put("message", "Hello, 这是一个匿名访问的接口");
        data.put("timestamp", System.currentTimeMillis());
        return AjaxResult.success(data);
    }
    
    /**
     * 获取系统信息
     */
    @ApiOperation("获取系统信息")
    @GetMapping("/system/info")
    public AjaxResult getSystemInfo() {
        Map<String, Object> info = new HashMap<>();
        info.put("name", "RuoYi管理系统");
        info.put("version", "3.8.9");
        info.put("framework", "Spring Boot");
        info.put("database", "MySQL");
        
        return AjaxResult.success(info);
    }
    
    /**
     * 测试不同路径匿名访问
     */
    @ApiOperation("测试不同路径匿名访问")
    @GetMapping("/test/path")
    public AjaxResult testPath() {
        Map<String, Object> data = new HashMap<>();
        data.put("path", "/api/test/anonymous/test/path");
        data.put("status", "success");
        data.put("note", "这个路径可以匿名访问，不需要登录认证");
        return AjaxResult.success(data);
    }
}